Instructor: Michael Mateas
Email: michael.mateas@lcc.gatech.edu or michaelm@cc.gatech.edu
Office: Skiles 361
TA: Nolan Lichty
Email: gtg432j@mail.gatech.edu
Lab hours: TBA
Lecture: MW 10:05-11:55 in Skiles 343
Lab: Friday 10:05-10:55 in the IDT lab (Skiles 346). Nolan will run these labs.
Office Hours: Wednesday, 12:00-1:00 (email me for appointments)
The goal of this course is to learn Java programming in the context of an art and design practice, that is, to understand computation as an expressive medium. We will juxtapose reading and discussion of seminal articles in computational media (from the New Media Reader) with Java programming projects designed to exercise specific technical skills as well as encourage conceptual explorations in computational art and design. Anyone working in new media will eventually be involved on interdisciplinary projects in which the ability to program will be a strong asset, if not a necessity. Even if in your future career as an artist or designer programming is not a large part of your practice, this course will empower you to communicate confidently with programmers, and thus deepen your interdisciplinary collaborations. And perhaps a few of you will become fascinated with the expressive possibilities opened up by programming, and will choose to make computation one of your primary media.
Edited by Noah Wardrip-Fruin and Nick Montfort
Bruce Eckel
Also available in electronic form here (note, we’re using the 2nd edition of the book, not the 3rd edition).
There are six projects. Each of the projects will explore an expressive possibility of computational systems and exercise specific Java programming skills. With each project we will read and discuss a number of seminal readings in new media where the conceptual explorations in the readings intersect with the project. For each project you will turn in a project description approximately half way through the project describing your design, that is, what you intend to accomplish with the project, what experience you’re trying to create.
There are 102 points possible in the class.
Projects: 72 points (12 per project, 5 for the project description 7 for the program)
In-class preparedness: 30 points (2 per week).
Helpful citizen: 10 points extra credit
Every Friday from 10:05-10:55, Nolan will run a lab in the IDT lab. Sometimes this will be an open lab where Nolan will be available to answer questions as you work on your projects, and sometimes Nolan will give presentations on specific features of Java, the class libraries, or the development environments.
Sun’s Java site has a nice tutorial.
The docs describing the Java class library are available for online viewing and for download (near bottom of page).
We are using the latest version of Java, Java 1.4.2. The Java SDK (consisting of compiler, virtual machine, class library and miscellaneous additional tools) for Java 1.4.2 is installed on the PCs and Macs in the IDT laboratory. If you need to install the SDK on another machine (e.g. your computer at home, your laptop), go here to download the installer.
We are using two different development environments, BlueJ and Eclipse. BlueJ is a nice environment for people new to both programming and Java, while Eclipse is a more powerful environment supporting larger projects. We will begin the class with BlueJ and migrate to Eclipse. BlueJ and Eclipse have been installed on the PCs and Macs in the IDT lab. As both BlueJ and Eclipse are open source software, installers for both environments are available if you wish to install them on your own machine (BlueJ, Eclipse).
Project description due: Monday,
August 25
Program due: Monday, September 1
“Hello world.” This is the classic utterance launching the adventure of programming. The expressive possibilities of computational systems are already visible. In an ambiguous voice (is the programmer or program saying hello), the program announces its existence to an audience, pronouncing itself distinct from the world around. What else could a program say, and what would it say if the audience could talk back?
Create an interactive program that reads from and prints
to the console.
· Introduction: Inventing the Medium – Janet Murray, NMR pp. 3-11.
· Introduction: New Media From Borges to HTML – Lev Manovich, NMR pp. 13-25.
· Personal Dynamic Media – Alan Kay & Adele Goldberg, NMR pp. 391-404.
· Chapter 2: Everything is an Object, TIJ, pp. 101-122.
· Computing Machinery and Human Intelligence – Alan Turing, NMR pp. 49-64.
· From Computing Power and Human Reason – Joseph Weizenbaum, NMR pp. 367-375.
· From Software – Exhibition at the Jewish Museum, 1970, NMR pp. 247-257.
· Chapter 3: Controlling Program Flow, TIJ, pp. 133-188.
Project description due: Wednesday,
September 3
Program due: Wednesday, September 17
Early computer monitors suffered from phosphor burn; a static image would eventually burn permanently into the computer monitor. Screen savers were developed to create ever changing imagery to prevent phosphor burn when the computer was idle. Though it’s been years since screens suffered from problems of phosphor burn, screen savers remain a potent cultural site, serving as a personal statement, a source of inspiration, or amusement, living in the moments of idleness in the workaholic culture of computer use. Screen savers are also the dominant mass-cultural manifestation of generative art, harnessing computation to algorithmically produce and manipulate visual imagery. What would you generate with a computer’s idle time?
Create a generative screen saver.
· “Happenings” in the New York Scene – NMR pp. 83-86.
· The Cut-Up Method of Brion Gysin – NMR pp. 89-91.
· Six Selections by the Oulipo – NMR pp. 147 - 189 (much of this is a paper poetry machine).
Monday, September 8 – Lab (I am out of town)
Wednesday, September 10 – Lab (I am out of town)
· The Construction of Change – Roy Ascott, NMR pp. 127-132.
·
Four Selection by Experiments in Art and Technology –
NMR pp. 210-226.
Project description due: Monday
September 29
Program due: Monday , October 6
The contemporary computer scene is dominated by the graphical user interface (GUI). For almost every task, from manipulating text, imagery, sound, video, to configuring a computer’s operating system (e.g. control panels), from searching for and organizing information (e.g. the web), to the process of programming (e.g. integrated development environments), there are special purpose GUI tools supporting the task through analogies to embodied interaction with physical objects. But no tool is neutral; every tool bears the marks of the historical process of its creation, literally encoding the biases, dreams, and political realities of its creators, offering affordances for some interactions while making other interactions difficult or impossible to perform or even conceive. While the ability to program does not bring absolute freedom (you can never step outside of culture, and of course programming languages are themselves tools embedded in culture), it does open up a region of free play, allowing the artist to climb up and down the dizzying tower of abstraction and encode her own biases, dreams and political realities. What graphical tools would you create?
Create your own image manipulation tool.
· Man-Computer Symbiosis – J.C.R. Licklider, NMR pp. 73-82.
· Sketchpad: A Man-Machine Graphical Communication Systems – Ivan Sutherland, NMR pp. 109-126.
· Direct Manipulation: A Step Beyond Programming Languages – Ben Schneiderman, NMR pp. 485-498.
· A Cyborg Manifesto: Science, Technology, and Socialist-Feminism in the Late Twentieth Century – Donna Haraway, NMR pp. 515-542.
· The GNU Manifesto – Richard Stallman, NMR pp. 543-550.
· From Soft Architecture Machines – Nicholas Negroponte, NMR pp. 353-366.
· From Mindstorms: Children, Computers and Powerful Ideas – Seymour Papert, NMR pp. 413-431.
Project description due: Wednesday,
October 15
Program due: Wednesday, October
22
Hypertext was conceived as a computer-aided form of reading and writing whose structure matches that of the human mind (a tangled web of association), thus enabling humans to make sense of the exponential growth of knowledge experienced in the 20th century. The World-Wide Web, while a rather anemic implementation of hypertext, makes up for these deficiencies by providing us a sneak peak at what it might be like to have a truly global repository of knowledge. But making sense of the world is not just a matter of structure, but of process, of the dynamic construction of meaning. And as we’ve been discovering together, computation is fundamentally a process medium. What would you do to the web?
Create an applet that dynamically does something to one or more web pages (e.g. collage, systematic distortion, re-layout, ironic superposition, etc.).
· The Garden of Forking Paths – Jorge Borges, NMR pp. 29-34.
· As We May Think – Vannevar Bush, NMR pp. 35-47.
· Mythinformation – Langdon Winner, NMR pp. 587-598.
Monday, October 13 – Mid-Term Recess.
· From Augmenting Human Intellect: A Conceptual Framework – Douglas Engelbart, NMR pp. 93-108.
· From Computer Lib/Dream Machines – Theodor H. Nelson, NMR pp. 301-339.
· A File Structure for the Complex, the Changing, and the Indeterminate – Theodor H. Nelson, NMR pp. 133-145.
· Nomadic Power and Cultural Resistance – Critical Art Ensemble, NMR pp. 781-790.
· The World-Wide Web – Tim Berners-Lee, et. al., NMR pp. 791-798.
Project description due: Wednesday,
October 29
Program due: Monday, November 10
The computer is in the process of displacing film and video as the dominant time-based medium. But like media shifts of the past, this does not mean that the new medium literally replaces the old, but rather the new medium recreates, extends, and transforms the structures and tropes of the old. In the case of computers and the moving image, this dynamic is visible in the use of computers as non-linear editing and playback devices, and in the use of filmic tropes in many synthesized animation sequences (in computer games, such sequences are even called cinematics). But once video imagery is made available to algorithmic processes, deeper possibilities open up, such as real-time manipulation and/or response to video imagery. What would a computer do if it could see?
Do something to/with a live video stream.
· Responsive Environments – Myron Kruger, NMR pp. 377-390.
· Will There by Condominiums in Data Space – Bill Viola, NMR pp. 463-470.
· “Put-That-There”: Voice and Gesture at the Graphics Interface – Richard A. Bolt, NMR pp. 433-439.
· The Fantasy Beyond Control – Lynn Hershman, NMR pp. 643-648.
Project description due: Monday,
November 17
Program due: Monday, December 8
While computer-based interactive games (a.k.a. video games) have been a pop-cultural force since the arcade scene of the late 1970s and early 1980s, in recent years video games have been recognized as a major emerging art form, poised to have as much cultural impact on the 21st century as cinema did on the 20th. The game industry is making Hollywood-sized amounts of money, with designers of the most popular games achieving a geeky sort of celebrity. Museums and galleries are offering exhibitions of “art games”, computer-scientists are beginning to treat games as technical objects worthy of serious attention, and in humanities departments around the world, games studies is a hot new topic. In short, something is going on, even if we don’t yet know what it is or how to talk about it. What kind of game would you create?
Create a simple game.
· Video Games and Computer Holding Power – Sherry Turkle, NMR pp. 499-514.
· The Six Elements and the Causal Relations Among Them & Star Raiders: Dramatic Interaction in a Small World – Brenda Laurel, NMR pp. 563-573.
· From Theater of the Oppressed – Augusto Boal, NMR pp. 339-352.
· The Lessons of Lucasfilm’s Habitat- Chip Morningstar and F. Randall Farmer, NMR pp. 663-678.
· The Work of Culture in the Age of Cybernetic Systems – Bill Nichols, NMR pp. 625-642.